package com.hibase.core.api.annotation;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * hibase 提供的外部api接口 不走内部权限校验逻辑
 *
 * @author chenfeng
 * @version 1.0
 * @date 2021/8/30 10:10
 * @des https://gitee.com/cheershi
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface HibaseApi {

    /**
     * api 类型
     *
     * @return
     */
    String type();

    /**
     * 限制次数
     *
     * @return
     */
    double limit() default 5;

    /**
     * 超时时长
     *
     * @return
     */
    int timeout() default 1000;

    /**
     * 超时时间单位
     *
     * @return
     */
    TimeUnit timeUnit() default TimeUnit.MILLISECONDS;

    /**
     * 忽略签名
     * <p>
     * 备注：
     * <li>true:第三方调用需要进行签名认证</li>
     * <li>false: 忽略签名校验</li>
     */
    boolean ignoreSignature() default false;
}
